package com.csx.base.design.behavior.strategy.example.exampleA;

import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import java.util.Map;

/**
 * @author cuisongxu
 * @date 2022/9/29 12:15
 */
@Component
public class PayStrategyFactory {

    /**
     * 通过Spring容器注入
     */
    @Resource
    private Map<String, PayStrategy> payStrategyMap;

    public PayStrategy getPayStrategy(PayStrategyEnum payStrategyEnum) {
        if(!payStrategyMap.containsKey(payStrategyEnum.getClassName())) {
            System.out.println("没有对应的支付策略，无法进行支付!");
            return null;
        }

        return payStrategyMap.get(payStrategyEnum.getClassName());
    }

}
